home *** CD-ROM | disk | FTP | other *** search
- /************************************************************************
- ** D A O G E T R W . H *
- ** *
- ** GetRows interface *
- ** *
- ** Warning: The interface defined in this file is for internal use by *
- ** the Microsoft Foundation Classes and the dbdao C++ classes. *
- ** Future releases of DAO may not be completely compatible with this *
- ** implementation. However, if you write to the MFC or dbdao *
- ** classes that use this interface, those classes will continue to *
- ** be compatible even if this underlying interface changes. *
- ** *
- *************************************************************************
- ** Copyright (C) 1995 by Microsoft Corporation *
- ** All Rights Reserved *
- ************************************************************************/
-
- #if !defined (_DAOGETRW_H_)
- #define _DAOGETRW_H_
-
-
- /*
- Enumerations
- */
- typedef enum
- {
- DAOCOLKIND_IND = 0,
- DAOCOLKIND_STR,
- DAOCOLKIND_WSTR
- } DAOCOLKIND;
-
- typedef enum
- {
- DAO_I2 = 0,
- DAO_I4,
- DAO_R4,
- DAO_R8,
- DAO_CURRENCY,
- DAO_DATE,
- DAO_BOOL,
- DAO_BSTR,
- DAO_LPSTR,
- DAO_LPWSTR,
- DAO_BLOB,
- DAO_BYTES,
- DAO_CHAR,
- DAO_WCHAR,
- DAO_ANYVARIANT,
- DAO_BOOKMARK,
- DAO_BYTE,
- DAO_GUID,
- DAO_DATATYPEMAX
- } DAODATATYPE;
-
- /*
- Macros
- */
- #define DAO_NOINDICATOR 0xffffffff
- #define DAO_NULL 0xffffffff
- #define DAO_CANTCOERCE 0xfffffffc
- #define DAO_NOMAXLENGTH 0x00000000
-
- #define DAOROWFETCH_CALLEEALLOCATES 0x00000001
- #define DAOROWFETCH_DONTADVANCE 0x00000002
- #define DAOROWFETCH_FORCEREFRESH 0x00000004
- #define DAOROWFETCH_BINDABSOLUTE 0x00000008
-
- #define DAOBINDING_DIRECT 0x00000001
- #define DAOBINDING_VARIANT 0x00000002
- #define DAOBINDING_CALLBACK 0x00000004
-
- /*
- Structures
- */
- typedef struct
- {
- DWORD dwKind;
- union
- {
- LONG ind;
- LPCSTR lpstr;
- LPCWSTR lpwstr;
- };
- } DAOCOLUMNID;
- typedef DAOCOLUMNID *LPDAOCOLUMNID;
-
- // Callback for binding
- EXTERN_C typedef HRESULT (STDAPICALLTYPE *LPDAOBINDFUNC)(ULONG cb, DWORD dwUser, LPVOID *ppData);
- #define DAOBINDINGFUNC(f) STDAPI f (ULONG cb, DWORD dwUser, LPVOID *ppData)
-
- typedef struct
- {
- DAOCOLUMNID columnID;
- ULONG cbDataOffset;
- ULONG cbMaxLen;
- ULONG cbInfoOffset;
- DWORD dwBinding;
- DWORD dwDataType;
- DWORD dwUser;
- } DAOCOLUMNBINDING;
- typedef DAOCOLUMNBINDING *LPDAOCOLUMNBINDING;
-
- typedef struct
- {
- ULONG cRowsRequested;
- DWORD dwFlags;
- LPVOID pData;
- LPVOID pVarData;
- ULONG cbVarData;
- ULONG cRowsReturned;
- } DAOFETCHROWS;
- typedef DAOFETCHROWS *LPDAOFETCHROWS;
-
- /*
- New Errors
-
- **NOTE: OLE standard ids to be determined.
- */
-
- #define GETROWSUCCESS(x) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, x)
- #define GETROWERR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, x)
-
- #define S_BUFFERTOOSMALL GETROWSUCCESS(0x1000)
- #define S_ENDOFCURSOR GETROWSUCCESS(0x1001)
- #define S_SILENTCANCEL GETROWSUCCESS(0x1002)
- #define S_RECORDDELETED GETROWSUCCESS(0x1003)
-
- #define E_ROWTOOSHORT GETROWERR(0x1000)
- #define E_BADBINDINFO GETROWERR(0x1001)
- #define E_COLUMNUNAVAILABLE GETROWERR(0x1002)
-
-
- /*
- Interfaces
- */
- #undef INTERFACE
- #define INTERFACE ICDAORecordset
- DECLARE_INTERFACE_(ICDAORecordset, IDispatch)
- {
- STDMETHOD(GetRows) (THIS_ LONG cRowsToSkip, LONG cCol, LPDAOCOLUMNBINDING prgBndCol, ULONG cbRowLen, LPDAOFETCHROWS pFetchRows) PURE;
- };
-
- #endif // _DAOGETRW_H_
-